package com.sh.单例模式.懒汉;


/**
 * 懒汉式单例模式
 * @author sh
 * 1、构造器私有化。
 * 2、提供一个公共的静态方法，类里面自己创建实例对象
 * 3、判断实例是否为空，如果为空就创建，如果不为空直接返回。
 * 4、只有在需要使用的时候才创建对象。
 *
 * 缺点：懒汉式单例模式是线程不安全的。
 *      多个线程同时调用getInstance()方法，同时进入判断里面的话，可能会创建多个实例。
 *
 * 优点： 延迟加载，第一次需要使用的时候才创建对象。
 *
 */
public class Main {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();

        if (s1 == s2) {
            System.out.println("两个对象是同一个实例。");
        } else {
            System.out.println("两个对象不是同一个实例。");
        }
    }
}